# -*- coding: utf-8 -*-

import allure
from common.page import Page
from common.utils import Utils
from dz_service.page_elements.el_asset_fund import asset_fund
from dz_service.function.fun_common import Common
from dz_service.page_elements.el_home import home
from time import sleep


class AssetFund:

    def submit_evidence(self):
        Page.click(asset_fund, '资管合格投资者页面', '提交证明', is_els=True, num=0)

    @allure.step('step:资管合格投资者权限开通-机构')
    def update_evidence_person(self, evidence1_pic, evidence2_pic):
        evidence1_pic_path = Utils.get_test_pic(evidence1_pic)
        evidence2_pic_path = Utils.get_test_pic(evidence2_pic)
        #点击首页菜单--更多业务
        Page.click(home, '首页', '更多业务')
        #选择资管合格投资者认定菜单
        Page.click(asset_fund, '资管合格投资者页面', '资管合格投资者认定')
        assert Page.element(asset_fund, "检查元素", "资料完整").text == "资料完整", "页面文字：资料完整 检验失败。"
        assert Page.element(asset_fund, "检查元素", "风险测评未过期").text == "风险测评未过期", "页面文字：风险测评未过期 检验失败。"
        assert Page.element(asset_fund, "检查元素", "证件日期未过期").text == "证件日期未过期", "页面文字：证件日期未过期 检验失败。"
        #点击下一步
        Common().click_next()
        assert Page.element(asset_fund, "检查元素", "资管合格投资者认定").text == "资管合格投资者认定", "页面文字：资管合格投资者认定 检验失败。"
        #点击申请认定
        Page.click(asset_fund, '资管合格投资者页面', '申请认定')
        assert len(Page.elements(asset_fund, '检查元素', '已满足')) == 5
        #点击下一步
        Common().click_next()
        assert Page.element(asset_fund, "检查元素", "已满足").text == "已满足", "页面文字：已满足 检验失败。"
        #前往上传
        Page.click(asset_fund, '资管合格投资者页面', '前往上传')
        assert Page.element(asset_fund, "检查元素", "请上传符合要求的资产证明的图片").text == "请上传符合要求的资产证明的图片", "页面文字：请上传符合要求的资产证明的图片 检验失败。"
        sleep(1)
        Page.send_key(asset_fund, '资管合格投资者页面', '资产收入证明1', evidence1_pic_path)
        Page.send_key(asset_fund, '资管合格投资者页面', '资产收入证明2', evidence2_pic_path)
        self.submit_evidence()
        Page.check_page_loading(5)
        assert Page.element(asset_fund, "检查元素", "提交成功").text == "提交成功", "页面文字：提交成功 检验失败。"
        Page.logger.info('提交成功。', extra={'appname': 'update_evidence'})

    @allure.step('step:资管合格投资者权限开通-机构')
    def update_evidence_org(self, evidence1_pic, evidence2_pic):
            evidence1_pic_path = Utils.get_test_pic(evidence1_pic)
            evidence2_pic_path = Utils.get_test_pic(evidence2_pic)
            # 点击首页菜单--更多业务
            Page.click(home, '首页', '更多业务')
            # 选择资管合格投资者认定菜单
            Page.click(asset_fund, '资管合格投资者页面', '资管合格投资者认定')
            assert Page.element(asset_fund, "检查元素", "资料完整").text == "资料完整", "页面文字：资料完整 检验失败。"
            assert Page.element(asset_fund, "检查元素", "风险测评未过期").text == "风险测评未过期", "页面文字：风险测评未过期 检验失败。"
            assert Page.element(asset_fund, "检查元素", "证件日期未过期").text == "证件日期未过期", "页面文字：证件日期未过期 检验失败。"
            # 点击下一步
            Common().click_next()
            assert Page.element(asset_fund, "检查元素", "资管合格投资者认定").text == "资管合格投资者认定", "页面文字：资管合格投资者认定 检验失败。"
            # 点击申请认定
            Page.click(asset_fund, '资管合格投资者页面', '申请认定')
            assert len(Page.elements(asset_fund, '检查元素', '已满足')) == 3
            # 点击下一步
            Common().click_next()
            sleep(1)
            Page.send_key(asset_fund, '资管合格投资者页面', '资产收入证明1', evidence1_pic_path)
            Page.send_key(asset_fund, '资管合格投资者页面', '资产收入证明2', evidence2_pic_path)
            self.submit_evidence()
            Page.check_page_loading(5)
            assert Page.element(asset_fund, "检查元素", "提交成功").text == "提交成功", "页面文字：提交成功 检验失败。"
            Page.logger.info('提交成功。', extra={'appname': 'update_evidence'})